// token相关的工具函数

/**
 * 存储token到localStorage
 * @param {string} token - 要存储的token
 * @returns {boolean} - 存储是否成功
 */
export function setToken(token) {
  try {
    if (!token || typeof token !== 'string') {
      console.error('无效的token:', token);
      return false;
    }
    localStorage.setItem('token', token);
    return true;
  } catch (error) {
    console.error('存储token失败:', error);
    return false;
  }
}

/**
 * 从localStorage获取token
 * @returns {string|null} - 获取到的token，如果不存在或获取失败则返回null
 */
export function getToken() {
  try {
    const token = localStorage.getItem('token');
    return token || null;
  } catch (error) {
    console.error('获取token失败:', error);
    return null;
  }
}

/**
 * 从localStorage删除token
 * @returns {boolean} - 删除是否成功
 */
export function removeToken() {
  try {
    localStorage.removeItem('token');
    return true;
  } catch (error) {
    console.error('删除token失败:', error);
    return false;
  }
}

/**
 * 检查token是否存在
 * @returns {boolean} - token是否存在
 */
export function hasToken() {
  const token = getToken();
  return !!token;
}

/**
 * 存储用户信息到localStorage
 * @param {Object} userInfo - 要存储的用户信息对象
 * @returns {boolean} - 存储是否成功
 */
export function setUserInfo(userInfo) {
  try {
    if (!userInfo || typeof userInfo !== 'object') {
      console.error('无效的用户信息:', userInfo);
      return false;
    }
    localStorage.setItem('userInfo', JSON.stringify(userInfo));
    return true;
  } catch (error) {
    console.error('存储用户信息失败:', error);
    return false;
  }
}

/**
 * 从localStorage获取用户信息
 * @returns {Object|null} - 获取到的用户信息对象，如果不存在或获取失败则返回null
 */
export function getUserInfo() {
  try {
    const userInfoStr = localStorage.getItem('userInfo');
    if (!userInfoStr) {
      return null;
    }
    return JSON.parse(userInfoStr);
  } catch (error) {
    console.error('获取用户信息失败:', error);
    return null;
  }
}

/**
 * 从localStorage删除用户信息
 * @returns {boolean} - 删除是否成功
 */
export function removeUserInfo() {
  try {
    localStorage.removeItem('userInfo');
    return true;
  } catch (error) {
    console.error('删除用户信息失败:', error);
    return false;
  }
}